1. Field of the Invention
The present invention relates to a parallel processing system by a multiprocessor and, more particularly, to a parallel processing system by an OS for single processors capable of operating an OS for single processors and an existing application for single processors on a multiprocessor to enable the application to realize parallel processing by a multiprocessor, and a parallel processing program.
2. Description of the Related Art
In data processing devices such as mobile terminals including a mobile phone and a mobile PC, an operating system for single processors (hereinafter referred to as an OS for single processors) and an application for single processors (hereinafter simply referred to as an application) are basically executed on a single processor.
Under these circumstances, when using the above-described application without modification on a multiprocessor basis, the application should be executed on an OS for multiprocessors in place of the above-described OS for single processors.
Among such systems which controls execution of an OS for multiprocessors and an application on such a multiprocessor system as described above are, for example, the conventional art disclosed in Japanese Patent Laying-Open (Kokai) No. 3-257652 and Japanese Patent Laying-Open (Kokai) No. 3-113563.
Japanese Patent Laying-Open (Kokai) No. 3-257652 (Literature 1) discloses a method of controlling interruption between the respective processor elements in a multiprocessor system composed of a plurality of processor elements.
Japanese Patent Laying-Open (Kokai) No. 3-113563 (Literature 2) discloses a method of scheduling processes to be assigned to a plurality of processors in a multiprocessor system.
On the other hand, Japanese Patent Laying Open (Kokai) No. 2003-058515 (Literature 3) discloses a method of executing an individual process in a plurality of processor elements.
When operating an existing application on an OS for multiprocessors as in conventional art, however, the OS for multiprocessors provides services for multiprocessors even when the application uses only one among a plurality of processors, or continues processing exclusive of other processor even when no other application operates, so that these extra processing causes overheads.
While modifying the above-described application to be adaptable to multiprocessors will eliminate the above-described problem, another problem will be produced of requiring considerable labor and costs for modification.
On the other hand, when an application is used without modification on an existing OS for single processors, it is highly demanded that an existing application should be operated without modification on a multiprocessor.
Moreover, communication between processes in parallel processors needs a function of sharing communication data and a mechanism for conducting sleep and wake-up of a processor, which functions have been conventionally realized being mounted on a kernel level of an OS. In other words, communication between processes in parallel processors requires an OS for parallel processors. Here, communication between processes represents synchronization of processing and data transmission and reception between the processes.
Accordingly, the foregoing described simple parallelization of an OS for single processors which operates the OS for single processors on each processor of a multiprocessor enables communication between processes in the same processor by the function of the OS for single processors, while enabling no communication between processes in different processors.
Literature 3, for example, discloses nothing about a method of inter-process communication between different processors.
Although not by the original function of an OS for single processors but by using a network, for example, communication between processes in different processors is enabled, a delay in processing of network communication will cause an overhead to make parallel processing by a multiprocessor meaningless.